#pragma once

class Label : public ZeEngine::GUIObject
{
public:
    Label(const std::string& font, const std::string& strText, const Vector2D<s32>& position, u32 fontSize, SDL_Color color);
    ~Label();

    void SetText(const std::string& strText);
    void SetColor(SDL_Color color);
    void SetFontSize(u32 size);

    virtual void Render(SDL_Renderer& renderer) override;

private:
    void SetTexture(SDL_Texture* pTexture);

private:

    Font*        m_pFont;
    std::string  m_text;
    u32          m_fontSize;
    bool         m_textChanged;
    SDL_Color    m_color;

    SDLTexture*  m_pTexture;

};